package com.df.base.updater.impl;

import com.df.base.updater.AbstractGroovyUpdater;
import com.df.base.updater.IGroovyUpdater;
import org.springframework.context.annotation.Profile;

/**
 * 数据库脚本更新
 *  从数据库拉取groovy的脚本信息，与本地缓存进行对比
 */
@Profile("product")
public class DBGroovyUpdater extends AbstractGroovyUpdater {


    @Override
    public void update() {
        System.out.println("执行了");
        if(firsetUpdate){
            //TODO 启动时主动从数据库拉取
            return;
        }
        //方案1：后续则监听脚本变化的事件（消息队列），实现思路：服务监听本服务脚本变化事件，数据库服务定时检测脚本变化，发布事件，
        //服务触发事件后从数据库拉取改变的脚本放入集合，此更新线程则
        //TODO 方案2：启动时从数据库拉取所有脚本加载，同时监听本服脚本的变化事件
        // 后续后脚本变动后，通过GM后台发布事件(某服某脚本改动的事件)到队列,对应服收到事件后从数据库拉取最新脚本进行更新

        //0.先获取所有脚本的hash和文件名和时间，与本地缓存对吧，筛选出要更新的
        //1.获取脚本字符串

        //2.解析成类
        //加入bean容器
    }

}
